#pragma once

#include "igamestate.h"

// SGD Wrappers
#include "SGD Wrappers/CSGD_Direct3D.h"
#include "SGD Wrappers/CSGD_DirectInput.h"
#include "SGD Wrappers/CSGD_TextureManager.h"
#include "SGD Wrappers/CSGD_XAudio2.h"

#include "BitmapFont.h"

//enum MenuYPosition	{PLAY = 290, OPTIONS = 360, H2P = 402, CREDITS = 444, QUIT = 486, INCREMENT = 42};
enum MenuYPosition	{PLAY = 295, OPTIONS = 359, H2P = 401, CREDITS = 443, QUIT = 485, INCREMENT = 42};

class MainMenuState : public IGameState
{
private:

	MainMenuState(void);
	MainMenuState(const MainMenuState&);
	MainMenuState& operator=(const MainMenuState&);
	virtual ~MainMenuState(void);

	// SGD Wrappers
	CSGD_Direct3D*				D3D;
	CSGD_DirectInput*			DI;
	CSGD_TextureManager*		TM;
	CSGD_XAudio2*				XA;

	// Font variable
	CBitmapFont* GroupFont;

	// Image variables
	int	FontImageID;
	int mainMenuScreenID;
	int altMainMenuID;
	int menuStuffID;
	int menuBoxID;
	int easterEggID;
	bool eggFound;

	// Cursor information
	int CursorX;
	int CursorY;

public:

	virtual void Enter(void);
	virtual void Exit(void);
	virtual bool Input(void);
	virtual void Update(float elapsed);
	virtual void Render(void);
	static MainMenuState* GetInstance(void);

	//// Get and set volumes
	//int GetMusicVolume(void) {return musicVolume;}
	//void SetMusicVolume(int music) {musicVolume = music;}
	//int GetSFXVolume(void) {return SFXVolume;}
	//void SetSFXVolume(int sfx) {SFXVolume = sfx;}

	TCHAR playStr[10];
	TCHAR optionsStr[10];
	TCHAR htpStr[15];
	TCHAR creditsStr[10];
	TCHAR quitStr[10];
};